启动与关闭CDB、PDB

您所在的位置:网站首页 oracle19c 启动 启动与关闭CDB、PDB

启动与关闭CDB、PDB

2023-08-14 21:07| 来源: 网络整理| 查看: 265

一、连接工具

sqlplus、pl/sql developer、TOAD等。

Oracle DBA常用的是sqlplus,登录过程如下:

SQL> sqlplus / as sysdba --在本机,以超级管理员身份登录 SQL> startup --默认是open状态,数据库将打开数据文件并进行一系列的检查工作,这些检查工具用于数据恢复

创建的实例名为:oracs133

    

二、PDB与CDB

Oracle 12c中,增加了可插接数据库的概念,即PDB,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。

CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。

在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。

下面是官方文档关于CDB与PDB的关系图。

三、启动和停止数据库 (一)启动数据库 CDB启动

使用命令:

/*在本机,以超级管理员身份登录*/ SQL> sqlplus / as sysdba /*开启startup,默认是open*/ SQL> startup /*查看目前CDB的状态*/ SQL> select status from v$instance;

12c通过“sqlplus / as sysdba”登录连接的是CDB,现在连接上的是root container。

执行过程如下:

[oracle@zhangqian ~]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Thu Sep 27 16:36:15 2018 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options SQL> startup ORA-01081: cannot start already-running ORACLE - shut it down first SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 1593835520 bytes Fixed Size 2924880 bytes Variable Size 1023413936 bytes Database Buffers 553648128 bytes Redo Buffers 13848576 bytes Database mounted. Database opened. SQL> select status from v$instance; STATUS ------------------------ OPEN

STARTUP的选项如下:

NOMOUNT:只启动数据库实例,此时读取参数文件;MOUNT:根据参数文件中的控制文件位置找到并打开控制文件,读取控制文件中的各种参数信息,如数据文件和日志文件的位置,但此时并不打开数据文件;OPEN:打开数据文件、日志文件等,并进行一系列检查工作,这些检查工作用语数据恢复(默认情况下,如果不加任何参数即是启动到OPEN状态)    OPEN也有两个选项:OPEN READ ONLY(只读模式打开数据库),OPEN READ WRITE(默认是这个,读写模式打开数据库)FORCE:启动数据库,与OPEN选项的区别是,用FORCE选项启动,如果当前数据库已经启动不会报错,而是自动SHUTOWN ABORT当前数据库,然后再启动,可以理解为RESTARTRESTRICT:PFILE: PDB启动

使用命令:

SQL> select name,open_mode from v$pdbs; --查看当前pdb的状态 SQL> alter session set container = PDB1; SQL> alter pluggable database open; SQL> select name,open_mode from v$pdbs;

具体过程如下:

SQL> select name,open_mode from v$pdbs; NAME ------------------------------------------------------------ OPEN_MODE -------------------- PDB$SEED READ ONLY PDB1 MOUNTED SQL> alter session set container=PDB1; Session altered. SQL> alter pluggable database open; Pluggable database altered. SQL> select name,open_mode from v$pdbs; NAME ------------------------------------------------------------ OPEN_MODE -------------------- PDB1 READ WRITE

PDB$SEED是系统创建的,下面的ORACS133PDB1是用户创建的,默认在CDB 启动之后,PDB 是自动启动到mount状态,而不是OPEN。所以需要手动到open状态。

(二)关闭数据库

继续上面的操作,目前在pdb1中,如果要退出Oracle,需要先关闭PDB1,再关闭数据库。

使用命令:

SQL> alter pluggable database pdb1 close;

执行过程:

SQL> alter pluggable database pdb1 close; Pluggable database altered. SQL> select name,open_mode from v$pdbs; NAME ------------------------------------------------------------ OPEN_MODE -------------------- PDB1 MOUNTED SQL> show con_name; CON_NAME ------------------------------ PDB1

选择CDB之后,执行数据库关闭。

使用命令:

SQL> alter session set container=CDB$ROOT; SQL> show con_name; SQL> shutdown immediate;

执行过程如下:

SQL> alter session set container=CDB$ROOT; Session altered. SQL> show con_name; CON_NAME ------------------------------ CDB$ROOT SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down.

也可以分解关闭步骤:

依次关闭数据文件、日志文件等(close),控制文件(dismount),最后关闭实例(shutdown)。

也可以一步完成数据库关闭:

我们关闭CDB之前PDB 是没有关闭的,所以这个操作也会把PDB 关闭掉。

2、SHUTDOWN的几个参数及含义

exit退出数据库后,数据本身的连接状态没有变化。

SHUTDOWN NORMAL:shutdown的默认方式,a.不允许新的数据库连接;b.只有当所有连接都断开后才能关闭,效率较低

SHUTDOWN IMMIDIATE:shutdown的常用方式,a.不允许创建新连接;b.已经创建的连接,如果有未执行完的SQL语句,等待其完成,如果没有立刻断开;c.未提交事务全部回滚

SHUTDOWN TRANSACTIONAL:使用率很低

SHUTDOWN ABORT:a.未提交事务不回滚;b.终止所有SQL操作;c.所有连接都断开。数据库关闭迅速,但是下一次开启需要进行实例恢复,启动慢;而且回滚段数据与数据文件可能不一致。

数据库开启和关闭的语句总结(顺序执行,有上下文关系):

//开启数据库

sqlplus / as sysdba;                  //登录连接CDB,默认是root container;startup open;                         //open 模式,但此时的pdb模式是mounted,需要手工开启alter session set container=ORACS133PDB1;                   //选定pdbalter pluggable database open;                                  //开启pdb

//关闭数据库

alter pluggable database all close;alter session set container = CDB$ROOT;shutdown immediate; (三)创建用户 1、schema

为Oracle 12c添加scott用户的方法:https://www.2cto.com/database/201610/553547.html

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3